﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Puzzler.Plugin.Interface
{
    internal interface IPuzzleContent<out TModel, out TRenderer, out TInputHandler, out TRibbonHandler, out TWordAddInHandler, out TIoHandler>
        where TModel : IPuzzleModel
        where TRenderer : IPuzzleRenderer
        where TInputHandler : IPuzzleInputHandler
        where TRibbonHandler : IPuzzleRibbonHandler
        where TWordAddInHandler : IPuzzleWordAddInHandler
        where TIoHandler : IPuzzleIOHandler
    {
        TModel Model { get; }
        TRenderer Renderer { get; }
        TInputHandler InputHandler { get; }
        TRibbonHandler RibbonHandler { get; }
        TWordAddInHandler WordAddInHandler { get; }
        TIoHandler IoHandler { get; }
    }
}
